# -*- coding: utf-8 -*-
#Modulos standars
import datetime
#Modulos propios
from choices import DiasSemana, Horarios
from models import Turnos
#definicion de clases y metodos
class Semana:
	def __init__(self,fi):
		self.fecha_inicio=fi
		self.fecha_fin=fi + datetime.timedelta(6)
		self.dias = []
		for x in range(0,7): self.dias.append(self.Dia(fi+datetime.timedelta(x)))
	class Dia:
		def __init__(self,f):
			self.fecha=f
			self.nombre= DiasSemana[f.weekday()]


class Agenda:
	def __init__(self,week):
		self.html='<table width="90%" border="1" cellspacing="0" align="center"> \n\t <tr> \n\t	<th scope="col" bgcolor="#006699">Hora</th>'
		for dia in week.dias: self.html+='\n\t <th scope="col" bgcolor="#006699">'+dia.nombre+'</th>'
		self.html+='</tr>'
		for hora in Horarios():
			self.html+='\n\t<tr>\n\t\t<th scope="row" bgcolor="#666666">'+ hora +'</th>'
			for dia in week.dias: self.html+='\n\t\t\t\t<td bgcolor='+self.color_celda(dia.fecha,hora)+'><font size="-3">'+ self.texto_celda(dia.fecha,hora) +'</font><a href="add_turno-'+ str(dia.fecha.year)+'o'+str(dia.fecha.month)+'o'+str(dia.fecha.day)+'-'+ hora+'/"><font size="-5">Agregar Turno</font></a></td>'
			self.html+='\n\t</tr>'
	def color_celda(self,fecha,hora):
		if fecha.weekday() in [0,6]: return "#999999"
		else:
			colores= ["#FFFFFF", "#00FF99", "#006633"]
			try: return colores[Turnos.objects.filter(fecha=fecha, hora=hora).count()]
			except: return "#FF0000"
	def texto_celda(self,fecha,hora):
		txt= "<ul>"
		for turno in Turnos.objects.filter(fecha=fecha, hora=hora):
			txt+= "<li>"+ turno.cliente.nombre+" "+ turno.cliente.apellido +" ("+turno.servicio.nombre+", "+str(turno.servicio.duracion)+"mins)</li>"
		return txt+'</ul>'


class Links:
	def __init__(self,fecha):
		self.yp= fecha + datetime.timedelta(356)
		self.mp= fecha + datetime.timedelta(28)
		self.wp= fecha + datetime.timedelta(7)
		self.yl= fecha - datetime.timedelta(356)
		self.ml= fecha - datetime.timedelta(28)
		self.wl= fecha - datetime.timedelta(7)